package com.ioday01demo;

import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class FlushDemo {
    public static void main(String[] args) throws IOException {
        /*
        通过缓冲流写出的数据会被临时存入缓冲流的内部字节数组中
        直到数组存满数据时才会 去写出
        通过缓冲输出流的flush()方法能强制将缓冲流中已经缓冲的数据一次性写出
        flush()方法是在接口Flushable中被定义的
        而字节输出流的超累OutputStream实现了该接口
        但是只有缓冲流 真正实现了flush()的功能
        其他高级流的 flush 方法  都是在调用缓冲流的

         */
        FileOutputStream fos = new FileOutputStream("fos.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        String s = "123";
        bos.write(s.getBytes(StandardCharsets.UTF_8));
        System.out.println("写出完毕");
        bos.flush();//强制输出数据
        bos.close();//调用这个方法时 会自动调用flush方法一次 完成输出
    }
}
